package org.jeecg.modules.sistersophie.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: t_student_info
 * @Author: jeecg-boot
 * @Date:   2021-05-23
 * @Version: V1.0
 */
@Data
@TableName("student_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="student_info对象", description="t_student_info")
public class StudentInfo implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Integer id;

	@TableField(exist = false)
	private Integer courseId;

    @TableField(exist = false)
    private Integer isEdit;

	/**姓氏*/
	@Excel(name = "firstName", width = 15)
    @ApiModelProperty(value = "姓氏")
    private String firstName;

    /**名称*/
    @Excel(name = "lastName", width = 15)
    @ApiModelProperty(value = "名称")
    private String lastName;

    /**中文名称*/
    @Excel(name = "chineseName", width = 15)
    @ApiModelProperty(value = "中文名称")
    private String chineseName;

    @TableField(exist = false)
    private String studentName;

	/**名称*/
	@Excel(name = "admissionTestDate", width = 15)
    @ApiModelProperty(value = "入学测试时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String admissionTestDate;
	/**学校*/
	@Excel(name = "school", width = 15)
    @ApiModelProperty(value = "学校")
    private String school;
	/**email地址*/
	@Excel(name = "email", width = 15)
    @ApiModelProperty(value = "email地址")
    private String email;

	/**联系电话*/
	@Excel(name = "phone", width = 15)
    @ApiModelProperty(value = "联系电话")
    private String phone;

    @Excel(name = "mobileNumber", width = 15)
    @ApiModelProperty(value = "手机号码")
    private String mobileNumber;

	@TableField(exist = false)
	private String phonePrefix;

    @ApiModelProperty(value = "手机区号")
    private String mobilePrefix;

	/**学校类型*/
	@Excel(name = "schoolType", width = 15)
    @ApiModelProperty(value = "学校类型")
    private String schoolType;
	/**年级*/
	@Excel(name = "grade", width = 15)
    @ApiModelProperty(value = "年级")
    @Dict(dicCode = "grade")
    private String grade;

    private String preGrade;

    private Date modifyGradeTime;

	/**入学测试成绩*/
	@Excel(name = "testScore", width = 15)
    @ApiModelProperty(value = "入学测试成绩")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Double testScore;
	/**地址*/
	@Excel(name = "address", width = 15)
    @ApiModelProperty(value = "地址")
    private String address;
	/**房屋类型*/
	@Excel(name = "houseType", width = 15)
    @ApiModelProperty(value = "房屋类型")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String houseType;
	/**城市*/
	@Excel(name = "city", width = 15)
    @ApiModelProperty(value = "城市")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String city;
	/**地区*/
	@Excel(name = "region", width = 15)
    @ApiModelProperty(value = "地区")
    private String region;
	/**邮政编码*/
	@Excel(name = "postalCode", width = 15)
    @ApiModelProperty(value = "邮政编码")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String postalCode;
	/**入学年份*/
	@Excel(name = "arrivalYear", width = 15)
    @ApiModelProperty(value = "入学年份")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String arrivalYear;
	/**推荐人*/
	@Excel(name = "recommendedBy", width = 15)
    @ApiModelProperty(value = "推荐人")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String recommendedBy;
	/**父母名称*/
	@Excel(name = "parentName", width = 15)
    @ApiModelProperty(value = "父母名称")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String parentName;

    /**备注*/
    @Excel(name = "memo", width = 15)
    @ApiModelProperty(value = "备注")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String memo;

    @Excel(name = "location", width = 15)
    @ApiModelProperty(value = "")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String location;

	/**删除标志 0=未删除，1=已删除*/
	@Excel(name = "删除标志 0=未删除，1=已删除", width = 15)
    @ApiModelProperty(value = "删除标志 0=未删除，1=已删除")
    private Integer isDelete;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createName;
	/**更新时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
    private String updateName;
}
